package bio_nio_aio.bio.com_base.netcode;

import org.junit.jupiter.api.Test;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;


//UDP通信使用到两个类  DatagramSocket 和 DategramPacket
public class TestUDP {
	// 发送端
	@Test
	public void send() throws IOException {
		DatagramSocket ds = new DatagramSocket();
		byte[] b = "你好，我是要发送的数据".getBytes();
		// 创建一个数据报，每一个数据报不能够大于 64k ,都记录着数据信息、发送的IP、端口号以及要发送端的
		// 接受端的 IP 和端口号
		DatagramPacket dp = new DatagramPacket(b, 0, b.length, InetAddress.getByName("192.168.0.196"), 9090);
		ds.send(dp);
		ds.close();
	}

	// 接受端
	@Test
	public void recive() throws IOException {
		DatagramSocket ds = new DatagramSocket(9090);
		byte[] b = new byte[1024];
		DatagramPacket dp = new DatagramPacket(b, 0, b.length);
		// 将传来的数据包数据写到 dp数据包
		ds.receive(dp);
		String str = new String(dp.getData(), 0, dp.getLength());
		System.out.println(str);
		ds.close();
	}
}
